﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;

namespace GUI.mngsys.Chitietmnsys
{
    using DAL.Entities;
    using BLL;
    using EXT;
    using DevExpress.XtraEditors;

    public partial class frmChitietNhanvien : GUI.Danhmuc.ChitietDanhmuc.frmInputChitietDanhmuc
    {
        public frmChitietNhanvien()
        {
            InitializeComponent();
        }

        NhanvienBLL Nhanvien_BLL = new NhanvienBLL();
        public static bool CorE = true;
        public static DataRow DrNV;

        public void Load_DanhsachNhanvien()
        {
            var dt = Nhanvien_BLL.Nhanvien_Select_All_Show(true);
            if (dt!=null)
            {
                if (dt.Rows.Count > 0)
                {
                    gcDanhsach.DataSource = dt;
                    palDanhsach.Text = String.Format("Danh sách___Có: {0} nhân viên", dt.Rows.Count);
                }
                else
                {
                    gcDanhsach.DataSource = null;
                    palDanhsach.Text = "Danh sách___Chưa có nhân viên nào";
                }
            }
        }

        private void frmChitietNhanvien_Load(object sender, EventArgs e)
        {
            gvDanhsach.GroupPanelText = "Kéo tên cột bên dưới vào đây để xem theo nhóm của cột đó";
            Load_DanhsachNhanvien();
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            var frm = new frmNhanvien(true);
            frm.MyEvent_LoadData_Danhsach += new MyEvent_LoadData(frm_MyEvent_LoadData_Danhsach);
            frm.ShowDialog();
        }

        public event MyEvent_LoadData MyEvent_LoadData_LoadTreeNV = null;

        void frm_MyEvent_LoadData_Danhsach(object sender, ELoadData e)
        {
            if (e.IsLoadData)
            {
                Load_DanhsachNhanvien();
                if (MyEvent_LoadData_LoadTreeNV != null)
                {
                    MyEvent_LoadData_LoadTreeNV(this, new ELoadData() { IsLoadData = true });
                }
            }
        }

        private void btn_Click(object sender, EventArgs e)
        {
            var frm = new mngsys.Chitietmnsys.frmChitietNhanvienOld();
            frm.MyEvent_LoadData_ReNew += new MyEvent_LoadData(frm_MyEvent_LoadData_ReNew);
            frm.ShowDialog();
        }

        void frm_MyEvent_LoadData_ReNew(object sender, ELoadData e)
        {
            if (e.IsLoadData)
            {
                Load_DanhsachNhanvien();
            }
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            var Id = gvDanhsach.GetFocusedRowCellValue("Id").GetGuid();
            if (Id != Guid.Empty)
            {
                if (XtraMessageBox.Show("Bạn có chắc muốn xóa nhân viên này không?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                    if (Nhanvien_BLL.Nhanvien_Delete(Id))
                    {
                        XtraMessageBox.Show("Xóa nhân viên thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        Load_DanhsachNhanvien();
                    }
                    else
                    {
                        if (Nhanvien_BLL.Nhanvien_Delete_Update(Id))
                        {
                            XtraMessageBox.Show("Cho nhân viên thôi làm việc thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            Load_DanhsachNhanvien();
                        }
                        else
                            XtraMessageBox.Show("Không thể kết nối tới CSDL\n\nVui lòng kiểm tra kết nối tới CSDL", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            CorE = false;
            DrNV = gvDanhsach.GetFocusedDataRow();
            var frm = new frmNhanvien(true);
            frm.MyEvent_LoadData_Danhsach+=new MyEvent_LoadData(frm_MyEvent_LoadData_Danhsach);
            frm.ShowDialog();
            CorE = true;
        }
    }
}
